publicvoid DuctCalcMain1( PaintEventArgs^ e )
            {
                Int32 i;    Int32 j;    Int32 m;    Int32 N1;
                float D1;    float D2;    float W1;    float W2;
                float H0;    float H1;    float H2;    
                float X;    float Y;    float X0;    float Y0;
                float X1;    float Y1;    float X2;    float Y2;    float R;
                m = 1;
                D1 = 0.0;    D2 = 0.0;    W1 = 0.0;    W2 = 0.0;
                H0 = 0.0;    H1 = 0.0;    H2 = 0.0;
                X0 = 30.0;    Y0 = 30.0;
                X1 = X0;
                Y1 = Y0;
                X2 = X1 + DuctWidth;
                Y2 = Y1;
                LineDraw1( X1, Y1, X2, Y2, e );
                for ( i = 0; i < DataMax; i++ )
                {
                    D2 = D1;
                    D1 = InData[i].D;
                    N1 = InData[i].N;
                    R = D1 * 0.5F;
                    if ( D1 > DuctWidth ) { MessageBox::Show("最大外径がダクト幅より大きい。"); return; }
                    if ( m == 1 ) H2 = D1;
                    if ( ( ( W1 + D1 ) <= DuctWidth ) && ( ( H1 + D1 ) <= H2 ) ) W2 = W1;
                    for ( j = 1; j <= N1; j++ )
                    {
                        if ( ( W1 + D1 ) > DuctWidth )
                        {
                            if ( ( m > 1 ) && ( ( H1 + D1 ) > ( H2 - D1 )) ) { W1 = 0.0; W2 = W1; H1 = H2; H2 += D1; } else { W1 = W2; H1 += D1; }
                        }
                        m += 1;
                         X = X0 + W1 + R;
                        Y = Y0 + H1 + R;
                        CircleDraw1( X, Y , R, e );
                        W1 += D1;
                    }
                }
                LineDraw1( X1, Y1, X1, Y2 + H1 + D1, e );
                LineDraw1( X2, Y1, X2, Y2 + H1 + D1, e );
            }